// 示例 1：

// 输入：s = "aab"
// 输出：[["a", "a", "b"], ["aa", "b"]]
// 示例 2：

// 输入：s = "a"
// 输出：[["a"]]

s = "aab"

var partition = function (s) {
    let zuhe = []
    let result = []
    let len = s.length

    function dfs(index) {
        if (index === len) {
            result.push(zuhe.slice())
        }

        for (let i = index; i < len; i++) {
            let substring = s.slice(index, i + 1)
            if (isPalindrome(substring)) {
                zuhe.push(substring)
                console.log(zuhe);

                dfs(i + 1)
                zuhe.pop()
            }
        }

    }

    dfs(0)
    return result
};
function isPalindrome(s) {
    return s === s.split('').reverse().join('');
}

partition(s)